#ifndef _PRIORITYQUEUE_H_
#define _PRIORITYQUEUE_H_

#include "Graph.h"
#include "UnorderedArray.h"
#include "Heap.h"

// PriorityQueue required by Prim's, internally uses either the Heap or UnorderedArray
class PriorityQueue
{
public:
	enum QueueType { heap, unordered };
	
	PriorityQueue(QueueType type, int size);
	~PriorityQueue();

	void insert(Edge *newEdge);
	Edge* deleteMin();
	void clear();

private:
	QueueType _type;
	Heap *_heap;
	UnorderedArray *_uno;

};

#endif /**_PRIORITYQUEUE_H_**/

